package com.sneakxy.mybatis.commons.repository.query.domain;

import java.io.Serializable;
import java.util.List;

import org.apache.ibatis.scripting.xmltags.SqlNode;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.type.TypeHandlerRegistry;

import com.sneakxy.mybatis.commons.orm.mapping.MybatisColumn;

/**
 * @author 潜行的青衣
 */
public interface Criterion extends Serializable {
	
	
	/**
	 * 获取字段
	 * @return 字段列表
	 */
	public List<MybatisColumn> getColumns(TypeHandlerRegistry typeHandlerRegistry, String prefix);
	
	public String getProperty();
	
	public Object getValue();
	
	public SqlNode toSql(Configuration config, String operator, String parameterName);
	
}
